#define ETH_HW_ADDR_LEN 6
#define IP_ADDR_LEN 4
#define ARP_FRAME_TYPE 0x0806
#define ETHER_HW_TYPE 1
#define IP_PROTO_TYPE 0x0800
#define OP_ARP_REQUEST 2

#define DEFAULT_DEVICE "eth0"

struct arp_packet {
        unsigned char targ_hw_addr[ETH_HW_ADDR_LEN];
        unsigned char src_hw_addr[ETH_HW_ADDR_LEN];
        unsigned short frame_type;
        unsigned short hw_type;
        unsigned short prot_type;
        unsigned char hw_addr_size;
        unsigned char prot_addr_size;
        unsigned short op;
        unsigned char sndr_hw_addr[ETH_HW_ADDR_LEN];
        unsigned char sndr_ip_addr[IP_ADDR_LEN];
        unsigned char rcpt_hw_addr[ETH_HW_ADDR_LEN];
        unsigned char rcpt_ip_addr[IP_ADDR_LEN];
        unsigned char padding[18];
};
